<?php

/**
 * Configurações de servidor de emails
 * @author Ricardo Alvarenga
 */
class Application_Model_ConfigSmtp
{
    /**
     * Lista todas as contas smtp
     * @return Zend_Db_Table_Rowset_Abstract
     */
    public function listaAllContasSmtp ()
    {
        $config = new Application_Model_DbTable_ConfigSmtp();
        $select = $config->select()
            ->setIntegrityCheck(false)
            ->order('smtp DESC');
        return $config->fetchAll($select);
    }

    /**
     * Procura por uma conta smtp pelo id
     * @param int $idConfig_Smtp
     * @return array
     */
    public function procuraContaSmtp ($idConfig_Smtp)
    {
        $config = new Application_Model_DbTable_ConfigSmtp();
        $where = $config->getAdapter()->quoteInto('idconfig_smtp=?', $idConfig_Smtp);
        $rconfig = $config->fetchRow($where);
        return $rconfig->toArray();
    }
    /**
     * Atualiza configurações de conta smtp
     * @param int $idconfig
     * @param string $smtp
     * @param string $conta
     * @param int $ssl
     * @param string $senha
     * @param int $porta
     * @param int $emailHora
     */
    public function update ($idconfig,$smtp,$conta,$ssl,$senha,$porta,$emailHora)
    {
    	$config = new Application_Model_DbTable_ConfigSmtp();
        $data = array('smtp' => $smtp,'conta'=>$conta,'senha'=>$senha,'ssl'=>$ssl,'porta'=>$porta,'envioPorHora'=>$emailHora);
        $where = $config->getAdapter()->quoteInto('idconfig_smtp=?', $idconfig);
        $config->update($data, $where);
    }
    /**
     * Insere conta smtp
     * @param string $smtp
     * @param string $conta
     * @param int $ssl
     * @param string $senha
     * @param int $porta
     * @param int $emailHora
     */
    public function save ($smtp,$conta,$ssl,$senha,$porta,$emailHora)
    {
        $data = array('smtp' => $smtp,'conta'=>$conta,'senha'=>$senha,'ssl'=>$ssl,'porta'=>$porta,'envioPorHora'=>$emailHora);
        $config = new Application_Model_DbTable_ConfigSmtp();
        $config->insert($data);
    }
    /**
     * Desabilitar configuração default smtp
     */
    public function desativar()
    {         
        $config = new Application_Model_DbTable_ConfigSmtp();
        $data = array('status' => 0);
        $where = 'status <> 0';
        $config->update($data, $where);
    }
    /**
     * Ativar configurações default smtp
     * @param int $idconfig_smtp
     */
    public function ativar($idconfig_smtp)
    {
    	$this->desativar();
        $config = new Application_Model_DbTable_ConfigSmtp();
        $data = array('status' => 1);
        $where = $config->getAdapter()->quoteInto('idconfig_smtp=?', $idconfig_smtp);
        $config->update($data, $where);
    }
    /**
     * Remove uma conta smtp
     * @param int $idConfig
     */
    public function remove($idConfig)
    {
    	$config = new Application_Model_DbTable_ConfigSmtp();
    	$id = (int) $idConfig;    	
    	$where = $config->getAdapter()->quoteInto('idconfig_smtp=?', $id);
    	$config->delete($where);
    }
    /**
     * Listar todas as contas ativas smtp
     * @return Zend_Db_Table_Rowset_Abstract
     */
    public function listaAllContaAtiva()
    {
    	$config = new Application_Model_DbTable_ConfigSmtp();
        $select = $config->select()
            ->setIntegrityCheck(false)
            ->where('status = 1')
            ->order('smtp DESC');
        return $config->fetchAll($select);
    }

}

